package cn.tedu.d20_innerclass;
/*
 本类用于测试内部类-
 1.内部类可以使用外部类的资源，包括私有资源
 2.外部类如果想要使用内部类的资源，必须先创建内部类的对象，
 通过内部类对象进行访问；

 */
public class TestInner {
    public static void main(String[] args) {
        //创建内部类对象
        Outer.Inner oi=new Outer().new Inner();
        oi.get();
        System.out.println(oi.count);

        //外部类使用与之前一样
        new Outer().find();//创建匿名对象调用find()方法

    }
}

//1.创建外部类
class Outer{

    String name;
    private int age;

    public void find(){
        System.out.println("Outer...find().");
        //System.out.println(count);报错
        //get();报错
        Inner in=new Inner();//在外部类内部创建内部类对象
        System.out.println(in.count);
        in.get();

    }


    //创建内部类---外部类的特殊成员
    /*
     内部类根据位置的不同，分为两种：
     1.成员内部类(类里方法外)
     2.局部内部类(方法里)
     */

     class Inner{//成员内部类

        int count=10;

        public void get(){
            System.out.println("Inner...get()...");
            System.out.println(name);
            System.out.println(age);

            //find();
        }
    }
}
